1. Field of the Invention
The present invention relates to rule-based data processing apparatuses and in particular to those having stored therein one or more agents, agent or each agent being defined by a set of rules, and each rule being in the form of a condition portion and an associated response portion, with the condition portion of each rule requiring the presence of one or more specified behaviour states or external inputs and the apparatus comprising means for responding to any said condition being satisfied by generating the associated response. The invention additionally, but not exclusively, relates to process control and interactive entertainment apparatuses based around such a rule-based data processing apparatus.
2. Description of the Related Art
Rule-based processor systems may support behaviour languages in which behaviours are either simple operations performed on a value, or rules, where a rule defines logical and temporal relations between events (behaviour state changes). Events associated with the condition portion of a rule--also known as the left hand side behaviours of a rule--cause subsequent events associated with the response portion (right hand side behaviour) of the rule. An example of such a rule-based real time language is Real Time ABLE (RTA), described in "Simulating and Implementing Agents and Multiple Agent Systems" Proceedings of the European Simulation Multiconference 1991 at pages 226-231. ABLE stands for Agent Behaviour LanguagE and is a highly concurrent production rule language for simulating agents and multiple agent systems, and provides for tighter integration of time with the production rule system. A further example of a rule-based language is given in "The Behaviour Language; User's Guide" by R A Brooks, Al Memo 1227, Massachusetts Institute of Technology Artificial Intelligence Laboratory, April 1990.
Whilst rule-based languages provide greater flexibility than more traditional programming languages, their propagating nature can still lead to rigidity in, for example, process control where activation of process stages is strictly controlled in terms of starting, intermediate and finishing rule conditions and responses with little flexibility for unprogrammed events. Modification of the process to accommodate even minor procedural changes is also not a simple matter, sometimes requiring recompilation of the whole program to accommodate a small delay/wait-state change.
Rule-based systems have been suggested as particularly suited for artificial intelligence applications where more complex behavioural simulations may be implemented in interconnected networks or modules of agents. The above-mentioned problems recur however when modelling interaction scenarios between virtual "actors", each in the form of a compound group of interconnected agents, with different agents governing the virtual actors response to environmental factors and the actions of the other virtual actors. If a "script" is to be followed (analogous to a linear process specification), all of the virtual actors required conditions and potential responses must be programmed into the script such that the interaction becomes a rigidly controlled process with little or no variation in successive runnings. From an observers point of view, the `interaction` between the virtual actors is predictable and unrealistic.
A system which overcomes many of these problems is described in our co-pending United Kingdom Patent Application No. 9609189.7 which provides for script/process specification in the form of a sequentially enabled chain of script agents with which separate agents (operator agents) interact. By means of markers placed on the respective operator agents by the script agents, the operator agents are cued as any script agent carrying a reference to them is enabled (activated as a part of the propagation sequence). The respective rule populations making up each operator agent will determine how they interact with the script agents and their resultant output. Applied to the above mentioned scenario of virtual actors following a script, the chain of script agents now becomes a more adaptable frame work with which the operator agent virtual actors work, performing the lines or stage directions specified in the script agents but in a manner determined by their internal skills. The rigidity of direct scripting is thus reduced and the flexibility is greatly increased as changing operator agents is a relatively simple matter, with different operator agent internal skills leading to different performances of a common script.
A problem with the above system, as well as with explicit scripting techniques, is that they cannot simply handle referential expressions, that is to say script fragments in which objects or features are only specifically defined by their relationship to other objects or features. This is particularly acute where the relationship does not initially exist: for example, with the stage direction "Character A looks at the book on the table", there may be no book on a table in the early part of the script, such that a script agent cannot place markers on the features to which it refers. With the script agent chain system, an unacceptable delay may be introduced following the placing of a book on a table as the script agents carrying that referential expression establish markers to the book. In explicit scripting systems, the problem may be handled by adding an initialisation step such as "Locate table; locate book on table" (again introducing delay) or a compromise is made such as replacing the referential expression with "Character A looks at position x,y,z" (which removes any possibility of flexibility in the initial placing of the book).
As will be recognised, the problem of referential expressions is not restricted to the scripting of interactive entertainments. Considering an assembly line process, one stage of which involves tightening down six nuts introduced to respective upstanding studs on a subassembly, the writing of the control instructions would be greatly simplified if it were possible to use expressions such as "Tighten the nut on each shaft to torque K" rather than having to generate a specific identity for each nut and/or specify the exact locations to be visited for each tightening operation.